package es.tikitaka.dao;

import java.util.List;

import es.tikitaka.domain.Temporada;
import es.tikitaka.domain.equipo.Equipo;
import es.tikitaka.domain.equipo.PartEquipo;

/**
 * 
 * @author Saúl Domínguez
 * @since 2010
 * @category PFC
 */

public interface PartEquipoService {

	/**
	 * Método para listar todas las participaciones de equipos en el sistema
	 * 
	 * @return lista de participaciones
	 */
	List<PartEquipo> getList();

	/**
	 * 
	 * @param temporada
	 * @return
	 */
	List<PartEquipo> getEquiposTemporada(Temporada temporada);

	/**
	 * Método para listar todas las participaciones de un equipo a lo largo de
	 * su trayectoria
	 * 
	 * @param equipo
	 *            Equipo al que pertenecen las participaciones
	 * @return lista de participaciones del equipo
	 */
	List<PartEquipo> getParticipaciones(Equipo equipo);

	/**
	 * 
	 * @param participacion
	 * @return
	 */
	PartEquipo merge(PartEquipo participacion);

	/**
	 * Método para eliminar del sistema un participación de equipo dada
	 * 
	 * @param id
	 *            Id de la participación de equipo a eliminar
	 * @return estado del proceso (true or false)
	 */
	boolean delete(Integer id);

	/**
	 * Método para guardar una participación de equipo en el sistema o las
	 * modificaciones sufridas por una participación ya existente
	 * 
	 * @param participacion
	 *            Participación de equipo a guardar
	 * @return estado el proceso (true or false)
	 */
	boolean save(PartEquipo participacion);

}
